package com.qd.panda.mapper.park;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.qd.common.panda.domain.entity.carpark.CarParkDTO;
import com.qd.common.panda.domain.entity.carpark.CarParkInfoDTO;
import com.qd.common.panda.domain.entity.carpark.SearchCarParkDTO;
import com.qd.common.panda.domain.search.CarParkSearch;
import com.qd.panda.model.CarPark;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 停车场信息
 *
 * @author sjk
 */
public interface CarParkMapper extends BaseMapper<CarPark> {
    /**
     * 分页
     *
     * @param page  分页属性
     * @param query 查询条件
     * @return 数据
     */
    IPage<CarParkDTO> page(IPage<CarParkSearch> page, @Param(Constants.WRAPPER) Wrapper<CarParkSearch> query);
    List<CarParkDTO> list(@Param(Constants.WRAPPER) Wrapper<CarParkSearch> query);

    /**
     * 传入主键判断这些主键是否在数据表中
     *
     * @param ids 传入主键
     * @return 返回存在的主键
     */
    List<String> getIds(@Param("ids") List<String> ids);

    /**
     * 查询停车场信息（小程序使用）
     *
     * @param page             分页信息
     * @param searchCarParkDTO 查询条件
     * @return 列表
     */
    IPage<CarParkInfoDTO> searchPage(IPage<SearchCarParkDTO> page, @Param("query") SearchCarParkDTO searchCarParkDTO);

    /**
     * 管辖的停车场
     *
     * @param query 查询参数
     * @return 列表
     */
    List<CarParkDTO> jurisdictionCarPark(@Param(Constants.WRAPPER) Wrapper<CarPark> query);


}